1. Field of the Invention
The present invention relates to the routing of data within communications networks, including but not confined to networks such as the Internet and particularly, but not exclusively, to a method of routing data directed to a mobile node. The mobile node may be a mobile host, such as a portable computer, or it may be a router which is responsible for the mobility of one or more entire networks, for example, the mobile data network within an aircraft. In either case, the mobile node may change its point of attachment from one network or subnetwork to another.
2. Background
The routing of data around the diverse networks which make up the Internet is based on a protocol known as the Internet Protocol (IP). Data is transferred in the form of data units known as IP datagrams between points in the Internet specified by IP addresses. The detailed specification of IP is available in a “Request for Comments” document, RFC 791, maintained by the Internet Engineering Task Force (IETF). RFC documents are widely available on the Internet at, for example, “ftp://ds.internic.net/rfc/rfcxxxx.txt”, where “xxxx” represents the RFC number, so that RFC 791 is available as rfc791.txt.
The current version of IP, known as IPv4, does not itself support mobility, but a protocol entitled “IP Mobility Support”, commonly referred to as Mobile IP, has been designed to enhance IPv4 to support mobility. This protocol is described in document RFC 2002, available as detailed above. The next generation of IP (IPv6) is being specifically designed to deal with the mobility requirement.
IPv4 assumes that a node's IP address uniquely identifies the node's fixed point of attachment to the Internet. If the node is transferred to a different point, it can only be contacted by allocating it a new IP address. Mobile IP, however, enables a mobile node, such as a laptop or palmtop computer, to send and receive IP datagrams over the Internet regardless of the physical location at which it is connected to the Internet and without changing its IP address. One example of the mechanism by which it does so is illustrated in FIGS. 1a and 1b. 
Referring to FIG. 1a, the Internet comprises a large number of networks and sub-networks 1, 2, 3, 4 connected via routers 5. A router may be a general purpose computer programmed to perform routing tasks. Increasingly, routers throughout the Internet are dedicated pieces of hardware provided by companies such as Cisco Systems, California, USA. In either case, the functionality of a router intended for use in an IP based network is defined in RFC 1812.
A mobile node (MN) 6 is normally connected to the Internet via a home network 1. The unique IP address assigned to the node 6 is known as its home address. Mobility agents, known as foreign agents (FA) and home agents (HA), advertise their presence on a network via availability messages known as Agent Advertisements. A mobility agent is typically a router connected to a particular network; for example, a home agent 7 is a router connected to the home network 1 and a foreign agent 8 is a router connected to a foreign network 2. The mobile node 6 may optionally solicit an Agent Advertisement message from any local mobility agents via an Agent Solicitation message. By receiving Agent Advertisements, the mobile node 6 is able to determine whether it is on its home network 1 or on a foreign network 2, 3, 4.
While the mobile node 6 is on its home network, it has no need for mobility services. When the mobile node 6 is temporarily moved to a foreign network 2, as shown by the dotted box in FIG. 1a, it obtains a temporary care-of address on the foreign network 2. This can be a foreign agent care-of address, which is the IP address of the foreign agent, obtained by receiving or soliciting Agent Advertisements from any foreign agents based on the foreign network 2. Alternatively, the care-of address may be obtained by using an external assignment mechanism, such as Dynamic Host Configuration Protocol (DHCP) (the reader is referred to RFC 1541 for further information), in which case it is known as a co-located care-of address.
The mobile node 6 then registers its new care-of address with its home agent 7 by exchanging Registration Request and Registration Reply messages with it. Registration provides a mechanism by which mobile nodes can communicate their current reachability information to their home agent. The registration process is described in more detail below, assuming that the mobile node 6 on the foreign network 2 is registering a foreign agent care-of address received via an Agent Advertisement from, for example, foreign agent 8.
First, the mobile node 6 sends a Registration Request message to the foreign agent 8, which processes it and forwards it to the mobile node's home agent 7. The Registration Request message includes the IP address of the foreign agent. The home agent 7 sends a Registration Reply message to the foreign agent 8 granting (or denying) the registration request. The foreign agent 8 processes this Reply and forwards it to the mobile node 6. This process establishes a temporary address for the mobile node 6 to which datagrams can be delivered while the node is roaming away from its home network 1.
If the mobile node 6 is returning to its home network 1 having been on a foreign network 2, it deregisters with its home agent 7, through exchange of Registration Request and Registration Reply messages.
Referring to FIG. 1b, when a correspondent node (CN) 9 attached to a network 4 sends a message intended for the mobile node 6, while it is connected to the foreign network 2, the message is intercepted by the home agent 7, as shown by arrow A. The home agent 7 encapsulates the datagrams forming the message with the care-of address for the mobile node 6, in this example being the IP address of the foreign agent 8, and forwards the message to the foreign agent 8.
The transmission of the encapsulated datagrams, shown by arrow B, is known as tunnelling. The foreign agent 8 receives the datagrams, decapsulates them and forwards them to the mobile node 6, as shown by arrow C. Messages from the mobile node 6 to other nodes in the Internet need not follow this route, but may be sent directly via an appropriate router, which may be foreign agent 8.
The concepts of encapsulation and tunnelling are described in detail in RFC 2003, “IP Encapsulation within IP”. The model is that a tunnel is the path followed by a datagram while encapsulated. Encapsulation allows an IP datagram to be hidden from intermediate routers which would incorrectly attempt to route it to the mobile node. Instead, the datagram is routed between the encapsulator and a knowledgeable decapsulator, such as a foreign agent, which can correctly route the datagram. The home agent 7 and foreign agent 8 are known as the endpoints of the tunnel. In the case of the co-located care-of address, the mobile node itself acts as an endpoint of the tunnel.
U.S. Pat. No. 5,325,362 (Aziz) and Johnson D B: “Ubiquitous Mobile Host Internetworking”, Proceedings of the workshop on workstation operating systems, 14 Oct. 1993, pp. 85-90, XP000672247, disclose tunnelling schemes which enable efficient routing of data to a mobile node to be maintained when the mobile node moves between its home network and foreign networks.
To enable the tunnelling process described above to function correctly, the home agent 7 maintains reachability information for the mobile node 6, in a form known as a mobility binding. This is the association of the mobile node's identity with a care-of address and a parameter known as the Lifetime, which is the number of seconds remaining before the registration of the node 6 with the home agent 7 expires. The aim behind a Lifetime value is to maintain the dynamic nature of the system, with a binding expiring within a set time unless positively maintained by the mobile node 6. As an example, the default Router Advertisement Lifetime value, which may be used where a mobile node is registering with a foreign agent which it has acquired via an Agent Advertisement, is 1800 seconds.
On receipt of a Registration Request message, the home agent 7 creates or modifies the mobility binding, for example, by re-setting the Lifetime value where the Request is a re-registration request and the mobility binding has not yet expired. If the Lifetime value for a given mobility binding expires before a re-registration request has been received, the home agent 7 deletes the mobility binding from its record. The Registration-Reply message from the home agent 7 informs the mobile node 6 (via the foreign agent 8) of the status of its Request, including the Lifetime value allocated by the home agent 7.
Mobile IP supports multiple simultaneous mobility bindings, so that each mobile node 6 may register with a number of foreign agents and so obtain a number of care-of addresses. This is particularly useful where a mobile node using a wireless interface to a network, for example an RF interface, moves within range of more than one foreign agent. For example, if the mobile node is a router on an aircraft, then while the aircraft is in flight, the router may from time to time register with a series of foreign agents based on the ground below using a radio link.
In the case of multiple simultaneous mobility bindings, the home agent 7 retains its existing list of mobility bindings when it receives a Registration Request containing the IP address of a new foreign agent. If the Lifetime value of one mobility binding expires, the home agent 7 deletes that mobility binding from its record, but retains in its record the other non-expired bindings.
FIG. 2 shows a situation in which the mobile node 6 is within range of two foreign agents 10, 11. Once the registration process with each foreign agent 10, 11 is complete, Mobile IP provides for the home agent 7 to tunnel a separate copy of each arriving datagram to each care-of address. The mobile node 6 will therefore receive multiple copies of each datagram depending on the number of foreign agents with which it is registered, in this case, two. This improves the bit error rate of the transmission.
The very nature of a mobile communications system means that links may be being constantly established, broken and re-established. The home agent 7 may lose contact with the mobile node 6 through one foreign agent, only to have it re-established through another foreign agent. However, the home agent 7 may lose contact with the mobile node 6 entirely, so that the Lifetime of each of its mobility bindings will eventually expire. When this occurs, the home agent 7 deletes each mobility binding, when it expires, from its record for that mobile node 6. Once all the mobility bindings have expired, the mobile node is no longer reachable through the home agent 7. Data sent to the mobile node 6 cannot therefore be routed to its destination. This type of event is dealt with by a protocol known as the Internet Control Message Protocol (ICMP), which is an integral part of all IP implementations. The functions of ICMP include dealing with error reporting and reachability testing as well as performance measurement and congestion control. In the event that the home agent 7 has no mobility bindings specifying a route to the mobile node 6, the home agent 7 generates an ICMP Destination Unreachable error report and sends this to the correspondent node 9 with a code indicating that the destination network is unreachable.
It is also possible for the home agent 7 to be unaware that the mobile node 6 is no longer reachable, for instance because the node becomes unreachable soon after re-registering its presence with the home agent 7, so that the Lifetime of the corresponding mobility binding has not yet expired. In this case, the home agent 7 will continue sending encapsulated datagrams through the tunnel, but the foreign agents 10, 11 will be unable to relay these to the mobile node. ICMP error messages will therefore be generated which will be relayed to the correspondent node 9 as before.
Although ICMP is useful in providing some indication of communication difficulties, it does not resolve the problem of ensuring that data reaches its destination, but simply notifies the existence of a problem. Further, there are times when the mobile node 6 itself knows that it will be unreachable at its present location and requires some method of call forwarding. It is further inconvenient if, after becoming unreachable, the mobile node 6 subsequently becomes contactable again and re-registers with the home agent 7, but the data destined for it is no longer available.